/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControleAcademico.View;

import ControleAcademico.Model.Dao.AlunoDaoImp;
import ControleAcademico.Model.Pojo.Aluno;
import java.io.*;

/**
 *
 * @author arthur
 * @author renan
 * @author tais
 * @author vinicius
 */
public class MenuAluno {
    
    // Atributos
    private AlunoDaoImp alunoDao;
    
    // Metodos  
    public MenuAluno(){
        
    }
    
    public void criaListaVazia() {
        this.alunoDao = new AlunoDaoImp();
    }
    
    public AlunoDaoImp getAlunoDao() {return this.alunoDao;}
    
    public void registrarAluno(){
        System.out.println("Informe o nome do aluno: \n");
        String nome = Console.readString();
        System.out.println("Informe o CPF do aluno: \n");
        String cpf = Console.readString();       
        
        int id = this.alunoDao.obterLista().size() + 1;
        Aluno aluno = new Aluno(nome,cpf,id);
        
        try {
            this.alunoDao.adicionar(aluno);
        } catch (IOException ex) {
            System.out.println("Aluno não inserido.\nCPF já consta na lista de alunos.");
        }
        
    }
    
    public void salvar() {
        
        try {
            File arquivo;  
  
            arquivo = new File("Alunos.txt");  
            FileOutputStream fos = new FileOutputStream(arquivo);
            
            for (Aluno a : getAlunoDao().obterLista()) {
                String escrita = (a.getId() + "\t" + a.getNome() + "\t" + a.getCpf() + "\n");
                fos.write(escrita.getBytes());
            }
            
            fos.close();  

        }catch (Exception ee) {  
            System.out.println(ee);
        }
    
    }
        
        
    public void load() {
        
        try {
            
            File entrada = new File("Alunos.txt");
            InputStream leituraEntrada = new  FileInputStream(entrada);
            InputStreamReader leituraStream = new InputStreamReader(leituraEntrada);  
            BufferedReader leituraBuffer = new BufferedReader(leituraStream);

            String linha = leituraBuffer.readLine();
            this.criaListaVazia();
     
            while(linha!= null) {
                String s[] = linha.split("\\t");
                Aluno novoAluno = new Aluno(s[1],s[2],Integer.parseInt(s[0]));
                this.getAlunoDao().adicionar(novoAluno);
                linha = leituraBuffer.readLine();
            }


            leituraBuffer.close();
            leituraStream.close();
            leituraEntrada.close();
  
        }catch (Exception ee) {  
            System.out.println("Erro na leitura do arquivo.");
            ee.printStackTrace();  
        }
    }
    
}
